package com.kexilo.core.common.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 幂等性配置
 * 
 * @author Kexilo
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "kexilo.idempotent")
public class IdempotentConfig {
    
    /**
     * 是否启用幂等性检查
     */
    private boolean enabled = true;
    
    /**
     * 默认超时时间（分钟）
     */
    private long defaultTimeout = 5;
    
    /**
     * 默认错误消息
     */
    private String defaultMessage = "请勿重复操作";
    
    /**
     * 全局key前缀
     */
    private String globalPrefix = "idempotent:";
    
    /**
     * 是否记录日志
     */
    private boolean logEnabled = true;
    
    /**
     * 是否在异常时删除key
     */
    private boolean deleteOnException = true;
}
